home *** CD-ROM | disk | FTP | other *** search
/ Motor Sport Digital Archive Collection 1960s / Motor Sport Digital Archive Collection 1960s.iso / main.swf / scripts / mx / rpc / AsyncRequest.as < prev    next >
Encoding:
Text File  |  2008-05-21  |  1.8 KB  |  61 lines

  1. package mx.rpc
  2. {
  3.    import mx.messaging.Producer;
  4.    import mx.messaging.events.MessageEvent;
  5.    import mx.messaging.events.MessageFaultEvent;
  6.    import mx.messaging.messages.AcknowledgeMessage;
  7.    import mx.messaging.messages.ErrorMessage;
  8.    import mx.messaging.messages.IMessage;
  9.    
  10.    public class AsyncRequest extends Producer
  11.    {
  12.       private var _pendingRequests:Object;
  13.       
  14.       public function AsyncRequest()
  15.       {
  16.          _pendingRequests = {};
  17.          super();
  18.       }
  19.       
  20.       override public function fault(param1:ErrorMessage, param2:IMessage) : void
  21.       {
  22.          var _loc3_:String = null;
  23.          var _loc4_:IResponder = null;
  24.          super.fault(param1,param2);
  25.          _loc3_ = param2.messageId;
  26.          _loc4_ = IResponder(_pendingRequests[_loc3_]);
  27.          if(_loc4_)
  28.          {
  29.             delete _pendingRequests[_loc3_];
  30.             _loc4_.fault(MessageFaultEvent.createEvent(param1));
  31.          }
  32.       }
  33.       
  34.       override public function acknowledge(param1:AcknowledgeMessage, param2:IMessage) : void
  35.       {
  36.          var _loc3_:Boolean = false;
  37.          var _loc4_:String = null;
  38.          var _loc5_:IResponder = null;
  39.          _loc3_ = Boolean(param1.headers[AcknowledgeMessage.ERROR_HINT_HEADER]);
  40.          super.acknowledge(param1,param2);
  41.          if(!_loc3_)
  42.          {
  43.             _loc4_ = param1.correlationId;
  44.             _loc5_ = IResponder(_pendingRequests[_loc4_]);
  45.             if(_loc5_)
  46.             {
  47.                delete _pendingRequests[_loc4_];
  48.                _loc5_.result(MessageEvent.createEvent(MessageEvent.RESULT,param1));
  49.             }
  50.          }
  51.       }
  52.       
  53.       public function invoke(param1:IMessage, param2:IResponder) : void
  54.       {
  55.          _pendingRequests[param1.messageId] = param2;
  56.          send(param1);
  57.       }
  58.    }
  59. }
  60.  
  61.